// #include <iostream>
// #include <string>
// using namespace std;
//
// //一个空的类占用1个字节
// class Empty
// {
//
// };
//
// class parent
// {
// public:
//     virtual void print();
//     virtual void print2()
//     {
//         cout << "虚函数2" << endl;
//     }
// };
// void parent::print()
// {
//     cout << "虚函数1" << endl;
// }
//
//
// int main()
// {
//
//     cout << sizeof(Empty) << endl;
//
//     //虚函数对于类的内存大小是由影响 增加一个指针类型数据大小
//     cout << sizeof(parent) << endl;
//     cout << sizeof(int*) << endl;
//     //虚函数表
//     parent object;
//     long long** p = (long long **)&object;
//     using Type = void(*)();
//     Type func = (Type)p[0][0];
//     func();
//     Type func1 = (Type)p[0][1];
//     func1();
//
//     return 0;
// }